package com.tabjin.rfidsocket.pojo;

import lombok.*;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;

@Getter
@Setter
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "arch_house")
public class ArchHouse {
    /**
     * 房屋id
     */
    @Id
    private Integer id;

    /**
     * 房屋名称
     */
    private String name;

    /**
     * 使用状态
     */
    private Integer status;

    /**
     * 入住日期
     */
    @Column(name = "check_in")
    private Date checkIn;

    /**
     * 楼层
     */
    private Integer floor;

    /**
     * 所属楼栋
     */
    @Column(name = "which_building")
    private Integer whichBuilding;

    /**
     * 建筑面积
     */
    private BigDecimal area;

    /**
     * 套内面积
     */
    @Column(name = "set_area")
    private BigDecimal setArea;

    /**
     * 户型(房、厅、卫)
     */
    @Column(name = "unit_type")
    private String unitType;

    /**
     * 建筑年代
     */
    @Column(name = "construction_age")
    private String constructionAge;

    /**
     * 朝向
0：东
1：南
2：西
3：北
4：东南
5：东北
6：西南
7：西北
     */
    private Integer towards;

    /**
     * 装修
0：毛坯
1：简装
2：精装
3：豪装
     */
    private Integer decoration;

    /**
     * 是否有电梯
0：无
1：有
     */
    @Column(name = "is_elevator")
    private Integer isElevator;

    /**
     * 产权性质
0：经济适用房
1：商品房
2：回迁房
3：房改房
     */
    @Column(name = "property_right")
    private Integer propertyRight;

    /**
     * 房屋等级
0：高层
1：多层
2：联排
3：独栋
4：商业
5：其他
     */
    private Integer level;

    /**
     * 房屋标签
     */
    private String tag;

    /**
     * 住户可见
0：不可见
1：可见
     */
    @Column(name = "visible_to_residents")
    private Integer visibleToResidents;

    /**
     * 销售状态
0：否
1：是
     */
    @Column(name = "sale_status")
    private Integer saleStatus;

    /**
     * 销售日期
     */
    @Column(name = "sale_time")
    private Date saleTime;

    /**
     * 计费开始日期
     */
    @Column(name = "billing_start_time")
    private Date billingStartTime;

    /**
     * 标准地址编码
     */
    @Column(name = "standard_address_coding")
    private String standardAddressCoding;

    /**
     * 标准项目编码
     */
    @Column(name = "standard_project_code")
    private String standardProjectCode;

    /**
     * 房产证
     */
    private String deed;

    /**
     * 租赁合同
     */
    @Column(name = "lease_contract")
    private String leaseContract;

    /**
     * 单位管理员id
     */
    @Column(name = "administrator_id")
    private String administratorId;

    /**
     * 创建时间
     */
    @Column(name = "create_time")
    private Date createTime;

    /**
     * 最后一次修改时间
     */
    @Column(name = "update_time")
    private Date updateTime;

    /**
     * 删除时间
     */
    @Column(name = "delete_time")
    private Date deleteTime;

    /**
     * 操作者
     */
    private String operator;

    /**
     * 最后一次更新操作者的ip地址
     */
    @Column(name = "operator_ip")
    private String operatorIp;

    /**
     * 获取房屋id
     *
     * @return id - 房屋id
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置房屋id
     *
     * @param id 房屋id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取房屋名称
     *
     * @return name - 房屋名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置房屋名称
     *
     * @param name 房屋名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取使用状态
     *
     * @return status - 使用状态
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置使用状态
     *
     * @param status 使用状态
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取入住日期
     *
     * @return check_in - 入住日期
     */
    public Date getCheckIn() {
        return checkIn;
    }

    /**
     * 设置入住日期
     *
     * @param checkIn 入住日期
     */
    public void setCheckIn(Date checkIn) {
        this.checkIn = checkIn;
    }

    /**
     * 获取楼层
     *
     * @return floor - 楼层
     */
    public Integer getFloor() {
        return floor;
    }

    /**
     * 设置楼层
     *
     * @param floor 楼层
     */
    public void setFloor(Integer floor) {
        this.floor = floor;
    }

    /**
     * 获取所属楼栋
     *
     * @return which_building - 所属楼栋
     */
    public Integer getWhichBuilding() {
        return whichBuilding;
    }

    /**
     * 设置所属楼栋
     *
     * @param whichBuilding 所属楼栋
     */
    public void setWhichBuilding(Integer whichBuilding) {
        this.whichBuilding = whichBuilding;
    }

    /**
     * 获取建筑面积
     *
     * @return area - 建筑面积
     */
    public BigDecimal getArea() {
        return area;
    }

    /**
     * 设置建筑面积
     *
     * @param area 建筑面积
     */
    public void setArea(BigDecimal area) {
        this.area = area;
    }

    /**
     * 获取套内面积
     *
     * @return set_area - 套内面积
     */
    public BigDecimal getSetArea() {
        return setArea;
    }

    /**
     * 设置套内面积
     *
     * @param setArea 套内面积
     */
    public void setSetArea(BigDecimal setArea) {
        this.setArea = setArea;
    }

    /**
     * 获取户型(房、厅、卫)
     *
     * @return unit_type - 户型(房、厅、卫)
     */
    public String getUnitType() {
        return unitType;
    }

    /**
     * 设置户型(房、厅、卫)
     *
     * @param unitType 户型(房、厅、卫)
     */
    public void setUnitType(String unitType) {
        this.unitType = unitType;
    }

    /**
     * 获取建筑年代
     *
     * @return construction_age - 建筑年代
     */
    public String getConstructionAge() {
        return constructionAge;
    }

    /**
     * 设置建筑年代
     *
     * @param constructionAge 建筑年代
     */
    public void setConstructionAge(String constructionAge) {
        this.constructionAge = constructionAge;
    }

    /**
     * 获取朝向
0：东
1：南
2：西
3：北
4：东南
5：东北
6：西南
7：西北
     *
     * @return towards - 朝向
0：东
1：南
2：西
3：北
4：东南
5：东北
6：西南
7：西北
     */
    public Integer getTowards() {
        return towards;
    }

    /**
     * 设置朝向
0：东
1：南
2：西
3：北
4：东南
5：东北
6：西南
7：西北
     *
     * @param towards 朝向
0：东
1：南
2：西
3：北
4：东南
5：东北
6：西南
7：西北
     */
    public void setTowards(Integer towards) {
        this.towards = towards;
    }

    /**
     * 获取装修
0：毛坯
1：简装
2：精装
3：豪装
     *
     * @return decoration - 装修
0：毛坯
1：简装
2：精装
3：豪装
     */
    public Integer getDecoration() {
        return decoration;
    }

    /**
     * 设置装修
0：毛坯
1：简装
2：精装
3：豪装
     *
     * @param decoration 装修
0：毛坯
1：简装
2：精装
3：豪装
     */
    public void setDecoration(Integer decoration) {
        this.decoration = decoration;
    }

    /**
     * 获取是否有电梯
0：无
1：有
     *
     * @return is_elevator - 是否有电梯
0：无
1：有
     */
    public Integer getIsElevator() {
        return isElevator;
    }

    /**
     * 设置是否有电梯
0：无
1：有
     *
     * @param isElevator 是否有电梯
0：无
1：有
     */
    public void setIsElevator(Integer isElevator) {
        this.isElevator = isElevator;
    }

    /**
     * 获取产权性质
0：经济适用房
1：商品房
2：回迁房
3：房改房
     *
     * @return property_right - 产权性质
0：经济适用房
1：商品房
2：回迁房
3：房改房
     */
    public Integer getPropertyRight() {
        return propertyRight;
    }

    /**
     * 设置产权性质
0：经济适用房
1：商品房
2：回迁房
3：房改房
     *
     * @param propertyRight 产权性质
0：经济适用房
1：商品房
2：回迁房
3：房改房
     */
    public void setPropertyRight(Integer propertyRight) {
        this.propertyRight = propertyRight;
    }

    /**
     * 获取房屋等级
0：高层
1：多层
2：联排
3：独栋
4：商业
5：其他
     *
     * @return level - 房屋等级
0：高层
1：多层
2：联排
3：独栋
4：商业
5：其他
     */
    public Integer getLevel() {
        return level;
    }

    /**
     * 设置房屋等级
0：高层
1：多层
2：联排
3：独栋
4：商业
5：其他
     *
     * @param level 房屋等级
0：高层
1：多层
2：联排
3：独栋
4：商业
5：其他
     */
    public void setLevel(Integer level) {
        this.level = level;
    }

    /**
     * 获取房屋标签
     *
     * @return tag - 房屋标签
     */
    public String getTag() {
        return tag;
    }

    /**
     * 设置房屋标签
     *
     * @param tag 房屋标签
     */
    public void setTag(String tag) {
        this.tag = tag;
    }

    /**
     * 获取住户可见
0：不可见
1：可见
     *
     * @return visible_to_residents - 住户可见
0：不可见
1：可见
     */
    public Integer getVisibleToResidents() {
        return visibleToResidents;
    }

    /**
     * 设置住户可见
0：不可见
1：可见
     *
     * @param visibleToResidents 住户可见
0：不可见
1：可见
     */
    public void setVisibleToResidents(Integer visibleToResidents) {
        this.visibleToResidents = visibleToResidents;
    }

    /**
     * 获取销售状态
0：否
1：是
     *
     * @return sale_status - 销售状态
0：否
1：是
     */
    public Integer getSaleStatus() {
        return saleStatus;
    }

    /**
     * 设置销售状态
0：否
1：是
     *
     * @param saleStatus 销售状态
0：否
1：是
     */
    public void setSaleStatus(Integer saleStatus) {
        this.saleStatus = saleStatus;
    }

    /**
     * 获取销售日期
     *
     * @return sale_time - 销售日期
     */
    public Date getSaleTime() {
        return saleTime;
    }

    /**
     * 设置销售日期
     *
     * @param saleTime 销售日期
     */
    public void setSaleTime(Date saleTime) {
        this.saleTime = saleTime;
    }

    /**
     * 获取计费开始日期
     *
     * @return billing_start_time - 计费开始日期
     */
    public Date getBillingStartTime() {
        return billingStartTime;
    }

    /**
     * 设置计费开始日期
     *
     * @param billingStartTime 计费开始日期
     */
    public void setBillingStartTime(Date billingStartTime) {
        this.billingStartTime = billingStartTime;
    }

    /**
     * 获取标准地址编码
     *
     * @return standard_address_coding - 标准地址编码
     */
    public String getStandardAddressCoding() {
        return standardAddressCoding;
    }

    /**
     * 设置标准地址编码
     *
     * @param standardAddressCoding 标准地址编码
     */
    public void setStandardAddressCoding(String standardAddressCoding) {
        this.standardAddressCoding = standardAddressCoding;
    }

    /**
     * 获取标准项目编码
     *
     * @return standard_project_code - 标准项目编码
     */
    public String getStandardProjectCode() {
        return standardProjectCode;
    }

    /**
     * 设置标准项目编码
     *
     * @param standardProjectCode 标准项目编码
     */
    public void setStandardProjectCode(String standardProjectCode) {
        this.standardProjectCode = standardProjectCode;
    }

    /**
     * 获取房产证
     *
     * @return deed - 房产证
     */
    public String getDeed() {
        return deed;
    }

    /**
     * 设置房产证
     *
     * @param deed 房产证
     */
    public void setDeed(String deed) {
        this.deed = deed;
    }

    /**
     * 获取租赁合同
     *
     * @return lease_contract - 租赁合同
     */
    public String getLeaseContract() {
        return leaseContract;
    }

    /**
     * 设置租赁合同
     *
     * @param leaseContract 租赁合同
     */
    public void setLeaseContract(String leaseContract) {
        this.leaseContract = leaseContract;
    }

    /**
     * 获取单位管理员id
     *
     * @return administrator_id - 单位管理员id
     */
    public String getAdministratorId() {
        return administratorId;
    }

    /**
     * 设置单位管理员id
     *
     * @param administratorId 单位管理员id
     */
    public void setAdministratorId(String administratorId) {
        this.administratorId = administratorId;
    }

    /**
     * 获取创建时间
     *
     * @return create_time - 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取最后一次修改时间
     *
     * @return update_time - 最后一次修改时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置最后一次修改时间
     *
     * @param updateTime 最后一次修改时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取删除时间
     *
     * @return delete_time - 删除时间
     */
    public Date getDeleteTime() {
        return deleteTime;
    }

    /**
     * 设置删除时间
     *
     * @param deleteTime 删除时间
     */
    public void setDeleteTime(Date deleteTime) {
        this.deleteTime = deleteTime;
    }

    /**
     * 获取操作者
     *
     * @return operator - 操作者
     */
    public String getOperator() {
        return operator;
    }

    /**
     * 设置操作者
     *
     * @param operator 操作者
     */
    public void setOperator(String operator) {
        this.operator = operator;
    }

    /**
     * 获取最后一次更新操作者的ip地址
     *
     * @return operator_ip - 最后一次更新操作者的ip地址
     */
    public String getOperatorIp() {
        return operatorIp;
    }

    /**
     * 设置最后一次更新操作者的ip地址
     *
     * @param operatorIp 最后一次更新操作者的ip地址
     */
    public void setOperatorIp(String operatorIp) {
        this.operatorIp = operatorIp;
    }
}